<?php 
/*
* StiPHPcms, A web Content management System made with PHP/MySQL
* JordSti : jord52@gmail.com
* Version : 0.0.1
*
* Copyright (C) 2009  jord52@gmail.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/

class FileSize {
	private $path;
	private $size;
	
	public function __construct($path = "none")
	{
		$this->path = $path;
		
		if($path!="none")
		{
			if(file_exists($path))
			{
				$this->size = filesize($path);
			}
			else
			{
				$this->size = 0;
			}
		}
	}
	
	public function setSize($size)
	{
		$this->size = $size;
	}
	
	public function getFormattedSize()
	{
		$unit = 'Byte(s)';
		$size = $this->size;
		if($size > 1024)
		{
			$unit = 'KiloByte(s)';
			$size = $size/1024;
		}
		
		if($size > 1024)
		{
			$unit = 'MegaByte(s)';
			$size = $size/1024;
		}
		
		if($size > 1024)
		{
			$unit = 'GigaByte(s)';
			$size = $size/1024;
		}
		
		$size = round($size,2);
		
		return $size.' '.$unit;
	}
	
	public function getSmallUnitFormattedSize()
	{
		$unit = 'B';
		$size = $this->size;
		if($size > 1024)
		{
			$unit = 'KB';
			$size = $size/1024;
		}
		
		if($size > 1024)
		{
			$unit = 'MB';
			$size = $size/1024;
		}
		
		if($size > 1024)
		{
			$unit = 'GB';
			$size = $size/1024;
		}
		
		$size = round($size,2);
		
		return $size.' '.$unit;
	}
	
	public function getByteSize()
	{
		return $this->size;
	}
	
}

?>